package com.gitee.wsl.compose.ui.portal.internal

import com.gitee.wsl.compose.ui.portal.bean.PortalEntry

sealed class PortalBackstackMutation<KeyT> {
   abstract val key: KeyT
   abstract val uid: PortalEntry.Id

   data class Remove<KeyT>(
      override val key: KeyT,
      override val uid: PortalEntry.Id,
  ) : PortalBackstackMutation<KeyT>()

   data class Attach<KeyT>(
      override val key: KeyT,
      override val uid: PortalEntry.Id,
  ) : PortalBackstackMutation<KeyT>()

   data class Detach<KeyT>(
      override val key: KeyT,
      override val uid: PortalEntry.Id,
  ) : PortalBackstackMutation<KeyT>()
}
